﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using SIM.Geo.BE;
using System.Linq;
namespace SIM.Geo.DA
{
    public class DATipoContacto: Base
    {
        #region Metodos
        /// <summary>
        /// Método que devuelve la lista de texturas de roca
        /// </summary>
        /// <returns></returns>
        public List<TipoContacto> ListarTipoContacto()
        {
            return this.Context.TipoContacto.ToList();
        }
        /// <summary>
        /// Método para insertar una textura de roca
        /// </summary>
        /// <param name="TipoContacto"></param>
        /// <returns></returns>
        public int InsertarTipoContacto(TipoContacto tipoContacto)
        {
            this.Context.TipoContacto.AddObject(tipoContacto);
            this.Context.SaveChanges();
            return tipoContacto.CodigoTipoContacto;
        }
        /// <summary>
        /// Método para modificar un textura de roca
        /// </summary>
        /// <param name="TipoContacto"></param>
        public void ModificarTipoContacto(TipoContacto tipoContacto)
        {
            this.Context.TipoContacto.Attach(tipoContacto);
            this.Context.ObjectStateManager.ChangeObjectState(tipoContacto, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar tipo de roca
        /// </summary>
        /// <param name="TipoContacto"></param>
        public void EliminarTipoContacto(TipoContacto tipoContacto)
        {
            this.Context.TipoContacto.Attach(tipoContacto);
            this.Context.TipoContacto.DeleteObject(tipoContacto);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre tipo de roca
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<TipoContacto> BuscarTipoContacto(string descripcion)
        {
            return this.Context.TipoContacto.Where(x => x.Descripcion.StartsWith(descripcion)).ToList();
        }
        /// <summary>
        /// Método que devuelve tipo de roca por codigo
        /// </summary>
        /// <param name="codigoTipoContacto"></param>
        /// <returns></returns>
        public TipoContacto ObtenerTipoContacto(int codigoTipoContacto)
        {
            return this.Context.TipoContacto.Where(x => x.CodigoTipoContacto.Equals(codigoTipoContacto)).FirstOrDefault();
        }
        #endregion
    }
}
